import {handlerGraphData, deepCopyData} from "./methods.js";
import {initLegendExample} from "./plugins/legend.js";
import graphG6 from "./graphOption.js";
// 图谱各种参数,包括图谱实例
let graphObject = null
let rawData = null

// data为可选参数,如果有说明第一次初始化图谱,没有说明已经实例过了
function initGraphMethods(options) {
    if (options) {
        // 分解参数
        const {params, nodeData} = options
        //原始数据
        rawData = nodeData
        //深拷贝数据,防止污染源数据
        const data = deepCopyData(nodeData);
        // 初始化图谱数据
        let graphData = handlerGraphData(data)
        // 初始化legend节点类型
        let legendExample = initLegendExample(data)
        // 合并参数
        Object.assign(params, {graphData, legendExample})
        // new 一个图谱对象
        graphObject = new graphG6(params)
        // 初始化图谱
        graphObject.initGraph()
        return graphObject
    }
    if (graphObject) {
        return graphObject
    } else {
        alert('图谱尚未初始化,请先初始化')
    }
}

export {initGraphMethods, rawData}
